<?php
    // JSON数组转换

    // json_encode() PHP数组和对象 转为 JSON字符串  
    // json_decode() JSON字符串 转为 PHP数组和对象


    // 多维数组  =>  数值数组 + 关联数组 嵌套组成


    // 数值数组  嵌套  数值数组    =>   类似JS中多维数组
    $list = [1,2,[3,4,[5,6]]];
    // print_r($list);

    // 数值数组  嵌套  关联数组     =>  类似JS数组对象
    $users = [
        ["name" => "张三","class"=>"2210","chinese"=>55,"math"=>66,"english"=>77],
        ["name" => "李四","class"=>"2210","chinese"=>78,"math"=>69,"english"=>57],
        ["name" => "王五","class"=>"2210","chinese"=>92,"math"=>38,"english"=>86],
    ];

    // print_r($users);

    // 关联数组  嵌套  数值数组   => 类似JS中的对象数组
    // 关联数组  嵌套  关联数组

    $zhang = [
        "name" => "张三",
        "age" => 18,
        "info" => ["height"=> "176cm","weight"=>"70kg"],
        "hobby" => ["sing","dance","rap"], 
    ];

    // print_r($zhang); 


    // json_encode() PHP数组和对象 转为 JSON字符串  
    
    // 注意:
    // 1. PHP中的数值数组 => 数组格式的字符串,  PHP中的关联数组/对象 => 对象格式的字符串
    // 2.  json_encode()  转化过程 如果遇到中文会将其编码, 前端接收JSON字符串之后,可以通过JSON.parse() 解析
    // 3. 如果接口要返回JSON字符串,必须是纯JSON字符串,不能出现其他内容 (不是纯JSON前端无法解析 => 报错)
    // 4. 如果接口要返回JSON字符串, 一个接口只能返回一条纯JSON字符串, 如果要返回多条,先将多个数据整合到一个新的数值数组/关联数组中 在将新数组转化为JSON字符串
    // 5. PHP 代码在服务器上执行，结果以纯 文本/HTML/json 形式返回给浏览器(客户端)  每个php文件都可以理解为一个接口 => 前端发送请求 => 接口接收请求返回响应

    // echo "hello";


    // echo json_encode($list);
    // echo json_encode($zhang);
    // echo json_encode($users);

    // 三合一
    // $obj = array($list,$zhang,$users);
    
    $obj = array();
    $obj["list"] = $list;
    $obj["info"] = $zhang;
    $obj["users"] = $users;
    echo json_encode($obj);

    
    


?>